The present invention relates to beveling of three-dimensional objects in a video display.
In video applications, video data may advance through several processing stages before video data is displayed on a video device. These stages may include modeling and rendering. Modeling refers to generation of information that is displayed on the video display. Rendering refers to conversion of this information to pixel data for display on the video device.
Modeling of most objects requires generation of three-dimensional meshes to represent the object. Modeling can be done by measuring the objects. This, however, tends to be very difficult, expensive and inaccurate. Extrusion is an alternate scheme that works well for several objects (see FIG. 1). A two-dimensional region is first specified by the human modeler. The modeler also specifies a path on which the region is to be extruded. A computer system then moves the two-dimensional region along the specified path, sweeping a volume that is then typically converted to a three-dimensional mesh representation (FIG. 1 (a)). The mesh can then be rendered or otherwise manipulated depending on the application. A rendered volume may be displayed as shown in FIG. 1(b).
The extruded regions often appear bland and lack character when rendered for display. They can be enhanced by beveling (see FIG. 2). Beveling mimics beveling in wood-working applications, wherein a carpenter uses a router to apply a rounding, flat or other effect to the corners and edges of real-world three-dimensional wooden objects. In video processing applications, beveling is a generalized extrusion scheme that belongs to the modeling stage. Beveling results in a three-dimensional mesh that, when rendered, appears more visually appealing than a plain extrusion (FIG. 2(a)-(e)). Beveling finds immediate applications in presentation environments, e.g., presentation authoring tools and computer networks such as the Internet.
A block diagram of an illustrative computer network 100 is shown in FIG. 3. There, the network 100 includes a network server 110 and a client terminal 120. Client terminal 120 includes a display 130. The network server 110 and client terminal 120 may communicate with each other over Internet 140. The network server 110 stores video information for display at the client terminal 120. If the network server 110 rendered the video information into pixel data and transmitted the pixel data to the client terminal 120, the pixel data would consume a tremendous amount of bandwidth of Internet 140.
Over the Internet 140, where it is desirable to represent video information as efficiently as possible, beveling and extrusion can have tremendous impact by providing very low bandwidth representations of three-dimensional meshes. A beveled mesh may be defined by a description of the two-dimensional boundary, the path along which the mesh is to be extruded, a definition of a beveling effect, and a few parameters. The two-dimensional boundary can be omitted entirely if it can be implicitly specified, for example for text by a string, a font-name and style properties. In such a case, the client terminal 120, not the network server 110, would render the video information for display. Animation of such client-side generated meshes can easily and efficiently replace the expensive downloads of video data such as those that are required for spinning logos and the like. Finally, beveling and extrusion provide a scalability advantage as well in that the quality of the generated meshes can be easily tied to the performance available on the computer system.
There is a need in the art for a fast and computationally inexpensive method for beveling extruded polygons.